library(shiny)
library(tidyverse)
devtools::load_all()
cur_date <- Sys.time()
attr(cur_date,"tzone") <- "UTC"
tags$script(
shiny::HTML('
function get_time_diff( datetime ){
var datetime = new Date(datetime.replace(" ", "T") + "Z").getTime();;
var now = new Date().getTime();
var milisec_diff = now - datetime;
var msec = milisec_diff;
var hh = Math.floor(msec / 1000 / 60 / 60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec / 1000 / 60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec / 1000);
msec -= ss * 1000;
return hh + " Hours " + mm + " Minutes " + ss + " Seconds";
}
')
)
tags$script(shiny::HTML(glue::glue('
$(function(){{
$("#date-diff").html("Last Updated " + get_time_diff("{cur_date}") + " ago");
}});
')))
macro_data <- macro_indicators %>%
dplyr::mutate(data = purrr::map(id,~tidyquant::tq_get(.,get = "economic.data",from = Sys.Date() - 20*365)))
usethis::use_data(macro_data,overwrite = TRUE)
chart_indicators <- function(df, factor_name = NULL) {
df %>%
dplyr::filter(factor == factor_name) %>%
split(.$rowid) %>%
purrr::map(~ {
dat <- .x %>%
tidyr::unnest(data)
dat %>%
highcharter::hchart("line", highcharter::hcaes(date, price)) %>%
highcharter::hc_title(text = unique(.x$indicator)) %>%
hc_rangeSelector(enabled = TRUE) %>%
hc_yAxis(
title = list(text = ""),
plotLines = list(list(
value = tail(dat, 1) %>% pull(price), color = "white",
dashStyle = "shortdash",width = 1, label = list(
style = list(color = "white"),
formatter = JS("function(){
return Highcharts.numberFormat(this.options.value, 2);
}")
)
))
) %>%
highcharter::hc_add_theme(highcharter::hc_theme_darkunica()) %>%
hc_credits(enabled = TRUE, text = "Source: <a href='https://fred.stlouisfed.org/' target='_blank'>Federal Reserve Economic Data</a>",useHTML = TRUE)
}) %>%
highcharter::hw_grid(ncol = 2)
}
Macro Indicators
Rates
macro_data %>% chart_indicators("Interest Rates")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Inflation
macro_data %>% chart_indicators("Inflation")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Others
macro_data %>% chart_indicators("Others")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Employment
macro_data %>% chart_indicators("Employment")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Housing & construction
macro_data %>% chart_indicators("Housing & construction")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Retail and Consumption
macro_data %>% chart_indicators("Retail and Consumption")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Surveys
macro_data %>% chart_indicators("Surveys")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Manufacturing
macro_data %>% chart_indicators("Manufacturing")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
Income
macro_data %>% chart_indicators("Income")
<<<<<<< HEAD
=======
>>>>>>> 34f823ac591be88d2828ebfb6c2887b0bdb8596f
/*fix for 0 padding*/
.col-1-2, .col-6-12 {
padding: 20px;
}
// resize highcharts to fit in main cotent area
document.addEventListener("DOMContentLoaded", function() {
$(".highchart, .highcharts-container, .highcharts-root").css("max-width","100%");
var t = setInterval(function(){
var resizeEvent = new Event('resize');
window.dispatchEvent(resizeEvent);
}, 1000);
});